package com.qxbb.report.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qxbb.report.bo.*;
import com.qxbb.report.pojo.ChainSalesOrderProduct;
import com.qxbb.report.vo.*;

import java.io.IOException;
import java.util.List;

/**
 * @version 1.0
 * @author: pebble
 * @data 2023/10/9 13:39
 */
public interface ProductSalesService extends IService<ChainSalesOrderProduct> {

    /**
     * 查询某店铺，年份季度商品销售统计
     *
     * @param chainOrderSalerBO
     * @return
     */
    List<StatisticsYearVO> selectYear(ChainOrderSalerBO chainOrderSalerBO);

    /**
     * 查询某店铺，品牌销售统计
     * @return
     */
    List<BrandVO> selectByBrand(BrandOrderSalerBO brandOrderSalerBO);

    /**
     * 查询某店铺，产品销售统计
     * @return
     */
    List<ProductStatisticsVO> selectByProduct(ProductSalerBO productSalerBO) throws IOException;

    /**
     * 查询某店铺，季度商品销售统计
     *
     * @param quanterChainSalerBO
     * @return
     */
    List<StatisticsQuanterVO> selectQuanter(QuanterChainSalerBO quanterChainSalerBO);

    /**
     * 查询某店铺，类别销售统计
     * @return
     */
    List<CategoryVO> selectByCategory(BrandOrderSalerBO brandOrderSalerBO);

    /**
     * 查询某店铺，产品类别销售统计
     * 报表第三层, 按照条码出报表
     * @return
     */
    List<ProductStatisticsVO> selectCategoryDetail(CatetoryDetailBO catetoryDetailBO) throws IOException;

    /**
     * 货品库存追踪
     * @param goodsDetailsBO
     * @return
     */
    List<GoodsDetailsVO> selectGoogSDetails(GoodsDetailsBO goodsDetailsBO);
}
